home *** CD-ROM | disk | FTP | other *** search
/ NetNews Offline 2 / NetNews Offline Volume 2.iso / news / comp / lang / c-part2 / 11552 < prev    next >
Encoding:
Text File  |  1996-08-05  |  1.9 KB  |  55 lines

  1. Path: cs.utk.edu!not-for-mail
  2. From: sparkman@cs.utk.edu (Don Sparkman)
  3. Newsgroups: comp.lang.c
  4. Subject: Re: [Q] how to specify binary values
  5. Date: 24 Mar 1996 18:23:50 -0500
  6. Organization: CS Department, University of Tennessee, Knoxville
  7. Message-ID: <4j4li6INNmbf@duncan.cs.utk.edu>
  8. References: <4ihqi0$9mt@brain.npiec.on.ca> <4isvnd$jkf@newshost.cyberramp.net>
  9. NNTP-Posting-Host: duncan.cs.utk.edu
  10.  
  11. one way to specify binary values is by using these macros
  12.  
  13. but I do agree with other posters that HEX values are usally 
  14. better 
  15.  
  16.  
  17. #define BINARY_NUM16(xx_d15,xx_d14,xx_d13,xx_d12,xx_d11, xx_d10, xx_d9,xx_d8,xx_d7,xx_d6,xx_d5,xx_d4,xx_d3,xx_d2,xx_d1,xx_d0) \
  18.         ( \
  19.             ( (xx_d15) << 15 ) |   \
  20.             ( (xx_d14) << 14 ) |   \
  21.             ( (xx_d13) << 13 ) |   \
  22.             ( (xx_d12) << 12 ) |   \
  23.             ( (xx_d11) << 11 ) |   \
  24.             ( (xx_d10) << 10 ) |   \
  25.             ( (xx_d9 ) <<  9 ) |   \
  26.             ( (xx_d8 ) <<  8 ) |   \
  27.             ( (xx_d7 ) <<  7 ) |   \
  28.             ( (xx_d6 ) <<  6 ) |   \
  29.             ( (xx_d5 ) <<  5 ) |   \
  30.             ( (xx_d4 ) <<  4 ) |   \
  31.             ( (xx_d3 ) <<  3 ) |   \
  32.             ( (xx_d2 ) <<  2 ) |   \
  33.             ( (xx_d1 ) <<  1 ) |   \
  34.             ( (xx_d0 ) <<  0 ) )  
  35.  
  36.  
  37. #define BINARY_NUM32(xx_d31,xx_d30,  xx_d29,xx_d28,xx_d27,xx_d26,xx_d25,xx_d24,xx_d23,xx_d22,xx_d21,xx_d20, xx_d19,xx_d18,xx_d17,xx_d16,xx_d15,xx_d14,xx_d13,xx_d12,xx_d11,xx_d10, xx_d9,xx_d8,xx_d7,xx_d6,xx_d5,xx_d4,xx_d3,xx_d2,xx_d1,xx_d0)           \
  38.          ((BINARY_NUM16(xx_d31,xx_d30, xx_d29,xx_d28,xx_d27,xx_d26,xx_d25,  \
  39.          xx_d24,xx_d23,xx_d22,xx_d21,xx_d20,xx_d19,xx_d18,xx_d17,xx_d16) << 16) |  \
  40.          BINARY_NUM16( xx_d15,xx_d14,xx_d13,xx_d12,xx_d11,xx_d10, \
  41.          xx_d9,xx_d8,xx_d7,xx_d6,xx_d5,xx_d4,xx_d3,xx_d2,xx_d1,xx_d0))
  42.  
  43.  
  44. int 
  45. main()
  46. {
  47.     long x = BINARY_NUM32(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1);
  48.  
  49.     printf("0x%lX\n",x);
  50.  
  51.     x = BINARY_NUM32(1,1,0,1, 1,1,1,0, 1,0,1,0, 1,1,0,1, 1,0,1,1, 1,1,1,0, 1,0,1,0, 1,1,1,1);
  52.     printf("0x%lX\n",x);
  53. return(0);
  54. }
  55.